package com.xique.park.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xique.park.bean.domain.ParkGarage;
import com.xique.park.bean.search.web.ParkGarageLaneDevListSearch;

import java.util.List;
import java.util.Map;

/**
 * 车库Service接口
 *
 * @author xique
 * @date 2021-12-09
 */
public interface IParkGarageService  extends IService<ParkGarage> {

    /**
     * 查询车库
     *
     * @param id 车库ID
     * @return 车库
     */
    ParkGarage selectParkGarageById(Long id);

    /**
     * 查询车库列表
     *
     * @param parkId 车场ID
     * @param parkGarage 车库
     * @return 车库集合
     */
    List<ParkGarage> selectParkGarageList(Long parkId,ParkGarage parkGarage);

    /**
     * 新增车库
     *
     * @param parkGarage 车库
     * @return 结果
     */
    int insertParkGarage(ParkGarage parkGarage);

    /**
     * 修改车库
     *
     * @param parkGarage 车库
     * @return 结果
     */
    int updateParkGarage(ParkGarage parkGarage);

    /**
     * 批量删除车库
     *
     * @param ids 需要删除的车库ID
     * @return 结果
     */
    int deleteParkGarageByIds(List<Long> ids);

    /**
     * 删除车库信息
     *
     * @param id 车库ID
     * @return 结果
     */
    int deleteParkGarageById(Long id);

    /**
     * 查询车库通道设备列表
     *
     * @param search 查询参数
     * @return 车库通道设备列表
     */
    List<Map<String, Object>> getGarageLaneDevList(ParkGarageLaneDevListSearch search);

    /**
     * 根据车库名称获取车库列表
     *
     * @param name   车库名称
     * @param parkId 车场ID
     * @return 车库列表
     */
    List<ParkGarage> selectParkGarageByName(String name, Long parkId);

    /**
     * 根据车场ID获取车库列表
     *
     * @param parkId 车场ID
     * @return 车库列表
     */
    List<ParkGarage> selectParkGarageByParkId(long parkId);
}
